<?php

namespace catchAdmin\settlement\model;

use think\Model;
use catcher\traits\db\BaseOptionsTrait;
use catcher\traits\db\ScopeTrait;
use catcher\base\CatchModel;
use catchAdmin\settlement\model\search\BillSearch;
/**
 *
 * @property int $id
 * @property string $billing_company
 * @property string $settlement_unit
 * @property string $bill_type
 * @property string $business_type
 * @property string $currency
 * @property string $bill_num
 * @property int $is_bill_ok
 * @property float $bill_money
 * @property string $job_number
 * @property int $is_notice_invoicing
 * @property int $is_billing_completed
 * @property string $invoice_num
 * @property string $bill_identification
 * @property string $remarks
 * @property int $confirm_status
 * @property int $is_merge_reservation
 * @property int $tenant_id
 * @property int $creator_id
 * @property int $created_at
 * @property int $updated_at
 * @property int $deleted_at
 */
class Bill extends CatchModel
{
    use BillSearch;
    
    public $field = [
        // 账单ID
        'id',
        // 开票公司
        'billing_company',
        // 结算单位
        'settlement_unit',
        // 账单类型
        'bill_type',
        // 业务类型
        'business_type',
        // 币种
        'currency',
        // 账单号
        'bill_num',
        // 账单完成：1=完成，0=未完成
        'is_bill_ok',
        // 账单金额
        'bill_money',
        // 工作号
        'job_number',
        // 通知开票：1=通知开票，0=不通知开票
        'is_notice_invoicing',
        // 开票完成：1=开票完成，0=开票没完成
        'is_billing_completed',
        // 发票号
        'invoice_num',
        // 账单标识
        'bill_identification',
        // 备注
        'remarks',
        // 确认状态：1=已确认，0=未确认
        'confirm_status',
        // 合并保留:1=合并保留，0=不合并保留
        'is_merge_reservation',
        // 商户
        'tenant_id',
        // 创建人id
        'creator_id',
        // 创建时间
        'created_at',
        // 更新时间
        'updated_at',
        // 删除时间
        'deleted_at',
    ];
    
    public $name = 'db_bill';

    /**
     * 列表
     * @throws \think\db\exception\DbException
     * @return \think\Paginator
     */
    public function getList($tenant_id = 0)
    {
        $where = [];
        if($tenant_id != 0){
            $where[]=['tenant_id','=',$tenant_id];
        }
        return $this->catchSearch()
            ->order('id','desc')
            ->where($where)
            ->withoutField('tenant_id,updated_at,deleted_at,creator_id')
            ->paginate();
    }
}